package Day18_网络编程.demo1_网络编程入门;

/**
 * @author zhangyan
 * @date 2020/5/10 9:04
 */
/*
通信的协议还是比较复杂的， java.net 包中包含的类和接口，它们提供低层次的通信细节。我们可以直接使用
这些类和接口，来专注于网络程序开发，而不用考虑通信的细节。

java.net 包中提供了两种常见的网络协议的支持：

                1.TCP：传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议，即传输数据之前，
                  在发送端和接收端建立逻辑连接，然后再传输数据，它提供了两台计算机之间可靠无差错的数据传输。
                  三次握手：TCP协议中，在发送数据的准备阶段，客户端与服务器之间的三次交互，以保证连接的可靠

                  第一次握手，客户端向服务器端发出连接请求，等待服务器确认。服务器你死了吗？
                  第二次握手，服务器端向客户端回送一个响应，通知客户端收到了连接请求。我活着啊！
                  第三次握手，客户端再次向服务器端发送确认信息，确认连接。
                  完成三次握手，连接建立后，客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性，TCP协议可以保证传输数据的安全

                2.UDP：用户数据报协议(User Datagram Protocol)。UDP协议是一个面向无连接的协议。
                  传输数据时，不需要建立连接，不管对方端服务是否启动，直接将数据、数据源和目的地都封装在数据包中，直接发送。
                  每个数据包的大小限制在64k以内。它是不可靠协议，因为无连接，所以传输速度快，但是容易丢失数据。
                  日常应用中,例如视频会议、QQ聊天等。
 */
public class Test2_网络通信协议 {
}
